05. 变量作用域

L4 04 Escopo de variável V3

变量作用域

变量作用域是指可以在程序的哪个部分引用或使用某个变量。

在函数中使用变量时,务必要考虑作用域。如果变量是在函数内创建的,则只能在该函数内使用该变量。你无法从该函数外面访问该变量。

# This will result in an error
def some_function():
    word = "hello"

print(word)

这意味着你可以为在不同函数内使用的不同变量使用相同的名称。

# This works fine
def some_function():
    word = "hello"

def another_function():
    word = "goodbye"

像这样在函数之外定义的变量依然可以在函数内访问。

# This works fine
word = "hello"

def some_function():
    print(word)

print(word)

注意,我们可以在此函数内以及函数外输出 word。作用域对理解信息在用 Python 和任何编程语言编写的程序中的传递方式来说很关键。

关于变量作用域的更多信息

在编程时,你经常会发现相似的想法不断出现。你将使用变量进行计数、迭代和累积要返回的值。为了编写容易读懂的代码,你会发现你需要对相似的想法使用相似的名称。一旦你将多段代码放到一起(例如,一个脚本中有多个函数或函数调用),你可能需要为两个不同的概念使用相同的名称。

幸运的是,你不需要不断想出新的名称。可以为对象重复使用相同的名称,只要它们位于不同的作用域即可。

良好实践:建议将变量定义在所需的最小作用域内。虽然函数可以引用在更大的作用域内定义的变量,但是通常不建议这么做,因为如果程序有很多变量,你可能不知道你定义了什么变量。